ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseアーキテクチャ概要
リリース6.0
B25763-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ユーザー管理キャッシュ・グループ

ユーザー管理キャッシュ・グループでは、あらゆる属性とSQL文をユーザーが選択して、キャッシュの動作をカスタマイズできます。ユーザーは、キャッシュ・データのロード、伝播、およびキャッシュ・グループからの削除について、その方法とタイミングを完全に制御できます。

図9.5 ユーザー管理キャッシュ・グループ

キャッシュ・インスタンス

Oracleとキャッシュ・グループの間での変更の伝播が表レベルの粒度で行われるシステム管理キャッシュ・グループとは異なり、ユーザー管理キャッシュ・グループでは、データの行(総称してキャッシュ・インスタンスと呼びます)のロード、リフレッシュおよびフラッシュ処理を伝播できます。

図9.6に示すように、各キャッシュ・グループには、そのキャッシュ・グループの主キーが含まれるルート表があります。ルート表の行は、子表の行と1対多の関係を持つことができます。また、その子表の行は、他の子表の行と1対多の関係を持つことができます。

キャッシュ・インスタンスは、外部キー関係によってキャッシュ・グループのルート表にある特定行と関連付けられた一連の行です。ルート表のそれぞれの主キー値がキャッシュ・インスタンスを指定します。キャッシュ・インスタンスは、「キャッシュのロード方法」で説明するキャッシュのロードとキャッシュのエージングの単位になります。キャッシュ・インスタンスの行の1つは、ルート表の行であることが必要です。キャッシュ・グループでは、そのグループ内に複数の親を持つ子表が存在することはできません。これらの制約によって、各TimesTenレコードが属しているキャッシュ・インスタンスは1つのみであり、また、同じキャッシュ・グループ内に存在する親は1つのみであることが保証されます。これで、キャッシュ・インスタンスのエージングの曖昧さが排除されます。外部キー制約は、親に対する更新や削除によって、または親のない子レコードの挿入によって、参照先がない子レコードが生成されるのを防ぎます。

図9.6に示す例で、特定の顧客ID(CustId)に属する表CustomerOrdersInterestsのすべてのレコードは、外部キー制約を介して互いに関連しているため、同じキャッシュ・インスタンスに属します。CustIdはキャッシュ・インスタンスを一意に識別するため、キャッシュ・インスタンス・キーと呼ばれます。

図9.6 TargetCustomersキャッシュ・グループ

キャッシュのロード方法

ユーザー管理キャッシュ・グループを使用する場合、アプリケーションは、次の方法を選択して、OracleデータベースからTimesTenにキャッシュ・グループ・データをロードできます。

注意: ロギングが有効か無効かにかかわらず、データをロードおよびリフレッシュすることもできます。詳細は、「ロギング・オプション」を参照してください。

キャッシュ・インスタンスのエージング

TimesTenにロードされたキャッシュ・インスタンスは、指定されたしきい値にキャッシュ容量が達したときに、TimesTenから自動的にエージ・アウトできます。TimesTenでは、アプリケーションに多数のキャッシュ・エージング・オプションを用意しており、様々なキャッシュ・インスタンスに様々なエージング期間を設定できます。また、特定のキャッシュ・インスタンスがエージ・アウトされないように設定することもできます。たとえば、アプリケーションではカタログ情報のキャッシュは常に保持されますが、ユーザー・プロファイルは、ユーザーがアプリケーションに接続したときにのみロードし、ユーザーが切断してしばらくしてから自動的にエージ・アウトすることができます。